package com.eastfair.venuebooking.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.venuebooking.dto.ExhibitionTaskDTO;
import com.eastfair.venuebooking.dto.ExhibitionTaskQuery;
import com.eastfair.venuebooking.dto.ExhibitionTaskSaveDTO;
import com.eastfair.venuebooking.dto.ExhibitionTaskUpdateDTO;
import com.eastfair.venuebooking.entity.Exhibition;
import com.eastfair.venuebooking.entity.ExhibitionTask;
import com.eastfair.venuebooking.vo.ExhibitionTaskVO;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * <p>
 * 业务接口
 * 任务
 * </p>
 *
 * @author linan
 * @date 2022-06-08
 */
public interface ExhibitionTaskService extends SuperService<ExhibitionTask> {

    /**
     * 添加展会任务
     * @param exhibitionSaveDTO
     * @return
     */
    Long addExhibitionTask(ExhibitionTaskDTO exhibitionSaveDTO);


    /**
     * 更新展会任务
     * @param exhibitionUpdateDTO
     * @return
     */
    boolean updateExhibitionTask(ExhibitionTaskDTO exhibitionUpdateDTO);


    /**
     * 通过展会环节导出任务书
     * @param response
     * @param exhibition
     * @throws IOException
     */
    void exportBySegment(HttpServletResponse response, Exhibition exhibition) throws IOException;

    /**
     * 通过展会部门导出任务书
     * @param response
     * @param exhibition
     * @throws IOException
     */
    void exportByOrg(HttpServletResponse response, Exhibition exhibition) throws IOException;

    /**
     * 通过展厅导出任务书
     * @param response
     * @param exhibition
     * @throws IOException
     */
    void exportBySpace(HttpServletResponse response, Exhibition exhibition) throws IOException;

    /**
     * 展会任务列表
     * @param params
     * @return
     */
    IPage<ExhibitionTaskVO> queryExhibitionTaskList(PageParams<ExhibitionTaskQuery> params);
}
